/*
 * @Author: wangdian
 * @Date: 2023-06-06 15:54:10
 * @LastEditors: wangdian
 * @LastEditTime: 2023-06-07 16:55:44
 * @Description: file content
 * @FilePath: \workspace\main.js
 */
var fs = require("fs");
// // var data = fs.readFileSync('input.txt');
// // console.log(data.toString());
// fs.readFile('input.txt', function (err, data) {
//     if (err) return console.error(err);
//     console.log(data.toString());
// });

// console.log("程序执行结束!");

// // 引入 events 模块
// var events = require('events');
// // 创建 eventEmitter 对象
// var eventEmitter = new events.EventEmitter();

// // // 创建事件处理程序
// // var connectHandler = function connected() {
// //     console.log('连接成功。');

// //     // 触发 data_received 事件
// //     eventEmitter.emit('data_received');
// // }

// // // 绑定 connection 事件处理程序
// // eventEmitter.on('connection', connectHandler);

// // // 使用匿名函数绑定 data_received 事件
// // eventEmitter.on('data_received', function () {
// //     console.log('数据接收成功。');
// // });


// // // 触发 connection 事件
// // eventEmitter.emit('connection');

// // console.log("程序执行完毕。");



// // 监听器 #1
// var listener1 = function listener1() {
//     console.log('监听器 listener1 执行。');
// }

// // 监听器 #2
// var listener2 = function listener2() {
//     console.log('监听器 listener2 执行。');
// }

// // 绑定 connection 事件，处理函数为 listener1
// eventEmitter.addListener('connection', listener1);

// // 绑定 connection 事件，处理函数为 listener2
// eventEmitter.on('connection', listener2);

// var eventListeners = eventEmitter.listenerCount('connection');
// console.log(eventListeners + " 个监听器监听连接事件。");

// // 处理 connection 事件
// eventEmitter.emit('connection');

// // 移除监绑定的 listener1 函数
// eventEmitter.removeListener('connection', listener1);
// console.log("listener1 不再受监听。");

// // 触发连接事件
// eventEmitter.emit('connection');

// eventListeners = eventEmitter.listenerCount('connection');
// console.log(eventListeners + " 个监听器监听连接事件。");

// console.log("程序执行完毕。");


// var fs = require("fs");
// var data = '';

// // 创建可读流
// var readerStream = fs.createReadStream('input.txt');

// // 设置编码为 utf8。
// readerStream.setEncoding('UTF8');

// // 处理流事件 --> data, end, and error
// readerStream.on('data', function (chunk) {
//     data += chunk;
// });

// readerStream.on('end', function () {
//     console.log(data);
// });

// readerStream.on('error', function (err) {
//     console.log(err.stack);
// });

// console.log("程序执行完毕");


// var fs = require("fs");

// // 创建一个可读流
// var readerStream = fs.createReadStream('input.txt');

// // 创建一个可写流
// var writerStream = fs.createWriteStream('output.txt');

// // 管道读写操作
// // 读取 input.txt 文件内容，并将内容写入到 output.txt 文件中
// readerStream.pipe(writerStream);

// console.log("程序执行完毕");



// var Hello = require('./hello');
// hello = new Hello();
// hello.setName('BYVoid');
// hello.sayHello();

// 输出全局变量 __filename 的值
// console.log(__filename);
// function printHello() {
//     console.log("Hello, World!");
// }
// // 两秒后执行以上函数
// setInterval(printHello, 2000);



// // 输出到终端
// process.stdout.write("Hello World!" + "\n");

// // 通过参数读取
// process.argv.forEach(function (val, index, array) {
//     console.log(index + ': ' + val);
// });

// // 获取执行路径
// console.log(process.execPath);


// // 平台信息
// console.log(process.platform);

// // 输出当前目录
// console.log('当前目录: ' + process.cwd());

// // 输出当前版本
// console.log('当前版本: ' + process.version);

// // 输出内存使用情况
// console.log(process.memoryUsage());

// var util = require('util');
// function Base() {
//     this.name = 'base';
//     this.base = 1991;
//     this.sayHello = function () {
//         console.log('Hello ' + this.name);
//     };
// }
// Base.prototype.showName = function () {
//     console.log(this.name);
// };
// function Sub() {
//     this.name = 'sub';
// }
// util.inherits(Sub, Base);

// var objBase = new Base();
// objBase.showName();
// objBase.sayHello();
// console.log(objBase);


// var objSub = new Sub();
// objSub.showName();
// //objSub.sayHello();
// console.log(objSub);

// 异步打开文件
// console.log("准备打开文件！");
// fs.open('input.txt', 'r+', function (err, fd) {
//     if (err) {
//         return console.error(err);
//     }
//     console.log("文件打开成功！");
// });

// console.log("准备打开文件！");
// fs.stat('input.txt', function (err, stats) {
//     if (err) {
//         return console.error(err);
//     }
//     console.log(stats);
//     console.log("读取文件信息成功！");

//     // 检测文件类型
//     console.log("是否为文件(isFile) ? " + stats.isFile());
//     console.log("是否为目录(isDirectory) ? " + stats.isDirectory());
// });

console.log("准备写入文件");
fs.writeFile('input.txt', '我是通 过fs.writeFile 写入文件的内容', function (err) {
    if (err) {
        return console.error(err);
    }
    console.log("数据写入成功！");
    console.log("--------我是分割线-------------")
    console.log("读取写入的数据！");
    fs.readFile('input.txt', function (err, data) {
        if (err) {
            return console.error(err);
        }
        console.log("异步读取文件数据: " + data.toString());
    });
});